package com.ht.reeducation.jobTask;

import java.io.*;
import java.net.SocketException;
import java.nio.charset.Charset;
import java.text.SimpleDateFormat;
import java.util.*;

import com.csvreader.CsvReader;
import org.apache.commons.net.ftp.*;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.ht.reeducation.dao.VehicleDao;
import com.ht.reeducation.entity.Vehicle;


public class FtpUtils {

    private static final Logger logger = LoggerFactory.getLogger(FtpUtils.class);

    /**
     * 获取FTPClient对象
     *
     * @param ftpHost     FTP主机服务器
     * @param ftpPassword FTP 登录密码
     * @param ftpUserName FTP登录用户名
     * @param port        FTP端口 默认为21
     * @return
     */
    public FTPClient loginftp(String ftpHost, String ftpPassword, String ftpUserName, int port){
        FTPClient ftpClient = new FTPClient();
        try {
            ftpClient.setDefaultPort(port); //设置默认端口
            ftpClient.connect(ftpHost);// 连接FTP服务器
            ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE);
            ftpClient.enterLocalPassiveMode();
            boolean isSuccess = ftpClient.login(ftpUserName, ftpPassword);// 登陆FTP服务器
            if (isSuccess) {
                logger.info("FTP登录成功");
                System.out.print("登录成功");
            }
            if (!FTPReply.isPositiveCompletion(ftpClient.getReplyCode())) {
                logger.info("未连接到FTP，用户名或密码错误。");
                System.out.print("未连接到FTP，用户名或密码错误");
                ftpClient.disconnect();
            } else {
                logger.info("FTP连接成功。");
                System.out.print("FTP连接成功");
            }
        } catch (SocketException e) {
            logger.info("FTP的IP地址可能错误，请正确配置。");
            System.out.print("FTP的IP地址可能错误");
            e.printStackTrace();

        } catch (IOException e) {
            logger.info("FTP的端口错误,请正确配置。");
            System.out.print("FTP的端口错误");
            e.printStackTrace();
        }
        return ftpClient;
    }

      /**
     * @退出关闭服务器链接
     */
    public void ftpLogOut(FTPClient ftp1){

        if (null != ftp1 && ftp1.isConnected()) {
            try {
                boolean reuslt = ftp1.logout();// 退出FTP服务器
                if (reuslt) {
                    logger.info("成功退出服务器");
                }
            } catch (IOException e) {
                e.printStackTrace();
                logger.warn("退出FTP服务器异常！" + e.getMessage());
            } finally {
                try {
                    ftp1.disconnect();// 关闭FTP服务器的连接
                } catch (IOException e) {
                    e.printStackTrace();
                    logger.warn("关闭FTP服务器的连接异常！");
                }
            }
        }

    }



}



